import Vue from "vue"
import axios from "axios"
import router from "../router"
import { Toast } from 'vant'
import qs from "querystring"

//判断环境
//开发环境 8080
// console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV == "development") {
    Vue.prototype.$pre = "http://localhost:3000"
} else {
    //生产环境3000
    Vue.prototype.$pre = ""
}

/* 
    请求拦截：每一次发请求都要做的逻辑
    请求拦截回调函数
    参数：请求发送给后端的请求信息 {url:"",params:{},data:{},method:"get",headers:{}}
    返回值：后端收到的真正请求信息
*/
axios.interceptors.request.use((req)=>{
    //如果请求的地址不是登录，也不是注册，就要携带请求头token
    if(req.url!="/api/login" && req.url!="/api/register"){
        req.headers.authorization=JSON.parse(localStorage.getItem("userInfo")).token
    }
    return req
})


/*
    响应拦截:每一次响应都要做的逻辑,在响应拦截中执行响应拦截的回调函数
    参数：后端返回的数据
    返回值：后端返回的数据
*/
axios.interceptors.response.use((res)=>{
    //统一打印
    console.group("响应拦截，请求地址是："+res.config.url);
    console.log(res);
    console.groupEnd();

    //统一处理失败
    if(res.data.code!=200){
        Toast.fail(res.data.msg);
    }

    //统一处理掉线
    if(res.data.msg=="登录已过期或访问权限受限"){
        router.replace("/login")
    }
    return res
})


//首页的分类数据
export const getHomeCate = () => {
    return axios.get("/api/getcate")
}

//首页的轮播数据
export const getHomeBanner = () => {
    return axios.get("/api/getbanner")
}

//首页的限时秒杀数据
export const getSeckill = ()=>{
    return axios.get("/api/getseckill")
}

//首页的商品信息
export const getHortGoods=()=>{
    return axios.get("/api/gethortgoods")
}
    


//购物车列表
export const getShopList = (json) => {
    return axios.get("/api/cartlist", {
        params: json
        // headers: {
        //     authorization: JSON.parse(localStorage.getItem("userInfo")).token,
        // },
    })
}

//加入购物车
export const addShop = (p) => {
    return axios.post("/api/cartadd", qs.stringify(p), 
    // {
    //     headers: {
    //         authorization: JSON.parse(localStorage.getItem("userInfo")).token,
    //     },
    // }
    )
}

//登录
export const reqLogin = (user) => {
    return axios.post("/api/login", qs.stringify(user))
}

//注册
export const reqRegister = (user) => {
    return axios.post("/api/register", qs.stringify(user))
}

//所有的商品信息
export const reqAllGoods = ()=>{
    return axios.get("/api/getcates");
}

//一级和二级分类商品
export const reqCateGoods = (json) => {
    return axios.get("/api/getgoodlist", {
        params: {
            cateid:json.cateid,
            type:json.type
        }
    })
}

// //二级分类商品
// export const reqCateGoods2 = (id) => {
//     return axios.get("/api/getgoodlist", {
//         params: {
//             cateid: id,
//             type: 2
//         }
//     })
// }

//详情
export const getDetail = (id) => {
    return axios.get("/api/getgoodsinfo", {
        params: {
            id: id
        },
    })
}

//搜索
export const reqSearch = (kw) => {
    return axios.get("/api/search", {
        params: {
            keywords: kw
        },
    })
}

//地址列表
export const reqAddressList = (json)=>{
    return axios.get("/api/addresslist",{
        params:json
    })
}

//添加地址
export const reqAddAdress=(json)=>{
    return axios({
        url:"/api/addressadd",
        method:"post",
        data:qs.stringify(json)
    })
}

//编辑地址
export const reqEditAddress=(json)=>{
    return axios({
        url:"/api/addressedit",
        method:"post",
        data:qs.stringify(json)
    })
}

//购物车数量加减
export const reqAddNum=(json)=>{
    return axios.post("/api/cartedit",qs.stringify(json))
}

//购物车删除
export const reqDelShop=(id)=>{
    return axios.post("/api/cartdelete",qs.stringify(id))
}

//生成订单
export const reqOrderAdd=(json)=>{
    return axios.post("/api/orderadd",qs.stringify(json))
}